Formal Verification of a Lazy Concurrent List-Based Set Algorithm

نویسندگان

  • Robert Colvin
  • Lindsay Groves
  • Victor Luchangco
  • Mark Moir
چکیده

We describe a formal verification of a recent concurrent list-based set algorithm due to Heller et al. The algorithm is optimistic: the add and remove operations traverse the list without locking, and lock only the nodes affected by the operation; the contains operation uses no locks and is wait-free. These properties make the algorithm challenging to prove correct, much more so than simple coarse-grained locking algorithms. We have proved that the algorithm is linearisable, using simulation between input/output automata modelling the behaviour of an abstract set and the implementation. The automata and simulation proof obligations are specified and verified using PVS.

برای دانلود متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

منابع مشابه

A Lazy Concurrent List-Based Set Algorithm

List-based implementations of sets are a fundamental building block of many concurrent algorithms. A skiplist based on the lock-free list-based set algorithm of Michael will be included in the Java Concurrency Package of JDK 1.6.0. However, Michael’s lock-free algorithm has several drawbacks, most notably that it requires all list traversal operations, including membership tests, to perform cle...

متن کامل

Model Checking of Linearizability of Concurrent List Implementations

Concurrent data structures with fine-grained synchronization are notoriously difficult to implement correctly. The difficulty of reasoning about these implementations does not stem from the number of variables or the program size, but rather from the large number of possible interleavings. These implementations are therefore prime candidates for model checking. We introduce an algorithm for ver...

متن کامل

Proving Correctness of Concurrent Objects by Validating Linearization Points

In the recent years, several concurrent data-structures/objects have been proposed. These data-structures allow multiple threads/process to operate on them concurrently while maintaining consistency. By allowing multiple threads to operate on them simultaneously, these structures strive to increase parallelism. These structures typically involve the operating threads applying different fine-gra...

متن کامل

A Concurrency-Optimal List-Based Set

Designing a highly concurrent data structure is an important challenge that is not easy to meet. As we show in this paper, even for a data structure as simple as a linked list used to implement the set type, the most efficient algorithms known so far may reject correct concurrent schedules. We propose a new algorithm based on a versioned try-lock that we show to achieve optimal concurrency: it ...

متن کامل

On Developing Optimistic Transactional Lazy Set

Transactional data structures with the same performance of highly concurrent data structures enable performance-competitive transactional applications. Although Software Transactional Memory (STM) is a promising technology for designing and implementing transactional applications, STM-based transactional data structures still perform inferior to their optimized, concurrent (i.e. non-transaction...

متن کامل

ذخیره در منابع من


  با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید

برای دانلود متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

عنوان ژورنال:

دوره   شماره 

صفحات  -

تاریخ انتشار 2006